//项目入口文件
import Vue from 'vue'
import App from './App.vue'
import router from './router'

//导入字体图标
import './assets/fonts/iconfont.css'

//导入全局样式表
import './assets/css/global.css'

//element-ui
import ElementUI from './plugins/element'
Vue.use(ElementUI)

import TreeTable from 'vue-table-with-tree-grid'
//手动注册该组件为全局可用组件
Vue.component('tree-table', TreeTable)

//导入富文本编辑器
import VueQuillEditor from 'vue-quill-editor'
//导入富文本编辑器的样式
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme

//将富文本编辑器注册为全局可用的组件
Vue.use(VueQuillEditor)

//导入NProgress包对应的js和css(进度条start()和done())
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

import axios from 'axios'
//配置请求的根路径
//判断是否为本机的ip和外网的ip
let port=8888
if (window.location.hostname!=="localhost"){
  port=50904
}
axios.defaults.baseURL = 
window.location.protocol
//"https:"
+'//'+window.location.hostname+':'+port+'/api/private/v1/';

//挂载到Vue的原型对象上,每个vue组件都可以通过this使用,发起ajax请求
Vue.prototype.$http = axios

//发出请求前,设置request拦截器,请求头中添加token信息
//在request拦截器中展示进度条
axios.interceptors.request.use((config) => {
  NProgress.start()//启用进度条
  //处理请求头
  config.headers.Authorization = window.sessionStorage.getItem('token')
  return config //放行拦截,必须放行
})

//在response拦截器中,隐藏进度条
axios.interceptors.response.use((config) => {
  NProgress.done()//隐藏进度条
  if (config.data.meta.status === 403) {
    Vue.prototype.$message.error('您没有操作权限')
  }
  return config //放行拦截,必须放行
})


//添加过滤器,处理时间,每个组件都可以使用
Vue.filter('dateFormat',function (originVal) {
  const dt = new Date(originVal)

  const y=dt.getFullYear()
  const m=(dt.getMonth()+1+'').padStart(2,'0')//字符串前面不足两位补零
  const d=(dt.getDate()+'').padStart(2,'0')

  const hh=(dt.getHours()+'').padStart(2,'0')
  const mm=(dt.getMinutes()+'').padStart(2,'0')
  const ss=(dt.getSeconds()+'').padStart(2,'0')
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})


Vue.config.productionTip = false

new Vue({
  router,
  render: (h) => h(App),
}).$mount('#app')
